Solid-state drives (SSDs) are rapidly becoming main storage elements of modern information technology (IT) infrastructures, replacing traditional hard disk drives (HDD). SSDs offer a low latency, a high data read/write throughput, and reliable storage of user data. Non-volatile memory express (NVMe) over fabrics (NVMe-oF) is an emerging technology that allows hundreds and thousands of NVMe-compatible SSDs to be connected over a network fabric such as Ethernet. An SSD that is compatible with the NVMe-oF standard over an Ethernet connection is referred to as an Ethernet-attached SSD, or in short, an eSSD.
The NVMe-oF protocol supports the remote direct-attached storage (rDAS) protocol that allows a large number of eSSDs to be connected to a remote host over the network fabric. The NVMe-oF protocol further supports the remote direct memory access (RDMA) protocol to provide a reliable transport service to carry NVMe commands, data, and responses between the remote host and the eSSDs over a network fabric. Examples of the transport protocols that can provide RDMA services include InfiniBand, iWARP, RoCE v1, and RoCE v2.
Reliable access to user data is one of the most critical requirements of a data storage system. Various techniques and methods have been employed at various points in a data storage system to achieve a necessary degree of reliability and data availability. For instance, data written to a storage device is replicated to one or more other storage devices as a backup storage when the storage device becomes unavailable. This data replication scheme is often referred to as mirroring or back-up.
In a chassis where a plurality of eSSDs are connected, each eSSD may be directly connected to a host over the Ethernet. The host can perform data replication to two or more eSSDs for data mirroring. However, the implementation of the data replication function by the host adds a burden to the host and the system software, resultantly adding an extra latency to data input/output (I/O) operations and increasing an overall cost to the data storage system.
Alternatively, an inline redundant array of independent disks (RAID) controller may be embedded in an SSD to perform data replication in a manner that is transparent to the host. However, the RAID controller is generally costly and may degrade the I/O performance by adding an extra latency. Further, an SSD with an embedded RAID controller may consume power at or near a maximum power budget under a heavy load or maximum input/output operations per second (IOPS) and fail to meet the power consumption requirement of the eSSD according to the NVMe-oF standard. Therefore, data replication by an embedded RAID controller in an eSSD may not be a viable solution for an NVMe-oF-compatible data storage system.